MAC ATTACK
By John Bernard
(c) 2003 MerchantDice


This game was made exclusively for the 2003 Dark Basic Retro Game Contest.
It was programmed using Dark Basic Professional during Feb and March 2003.
All the bitmap graphics were made using Paint Shop Pro 5.


The inspiration for the game comes from Pac Man by Midway. I have taken the
liberty to make various changes to the original. The most notable change is that
in this game the player controls the ghost. "Pac" has been reengineered to be
"Mac" and as such each Mac has a wide mouth and the player can sneek through
the open mouth.

The object of the game is to collect all the pearls while avoiding the Macs.

When the Power Pearl is collected, the ghost become large (why should the bad
guys be any different when the player becomes powerful?) and can eliminate the
Macs. Also, the player can keep eliminating the same Mac during the duration 
of a single Power Pearl.

There are 7 different mazes, with 8 variations in color (the 8th being rainbow).

The speed of the game progressively gets faster. Eventually, the Macs are faster
than the ghost, but this only happens at a relatively high level since it is a
bit unfair for the player.

One thing missing from the original is a "secret passage" which I intentially left
out just to make the game different.

Playing tip: if you have trouble controlling the ghost, try and turn earlier than
you think. Also, the last key pressed is remembered, so you can press the arrow
and then let go - you don't have to hold down the key.


Since this game is being written with a potential to be used as a learning aid, I
will clarify one aspect of the game:
Mac Artificial Intelligence (AI) - The maze is constructed as a 12x12 grid, with each
square of the grid being exactly 60x60 pixels. Each position (0,0) of a square is
considered a "hot spot". When a Mac hits a hot spot a decision needs to be made as 
to the direction the Mac will travel. For each square, there are 1-4 possible directions
that a Mac can go, which of course are limited by the maze walls. As such, each
square is pre-defined with a Direction Definition (DirDef) that I have encoded in the
level files. If there is more than 1 direction that a Mac can go in, then the decision
is made as such:
- The Mac cannot reverse directions if the current direction is still available.
  The reason is because I did not want the Macs wiggling back and forth.
- Look at the position of the Mac relative to the player. For example, let's say the
  Mac is up and to the right relative to the player. As such, eliminate the possibility
  of moving up or right (as long as down or left is available). The reason is this
  gives the Mac a sort of intelligence to pursue the player.
- If there is still more than 1 direction possible, then randomly select a direction.
  This makes the game a bit unpredicatable (and in my opinion more fun).


Now - here are things that I would have done if I had more time:
- Make the bonus coin a key instead. This key would unlock parts of the maze that
  had pearls inside. Of course, this would require the key to keep reappearing until
  the player finally collects it.
- Make more mazes. Even better, I would also include a maze maker so that the
  user can create their own mazes.
- Give each Mac their own personality. The main thing for this is to make the
  "random selection" as described above to be a bit different depending on the Mac.
  Instead, I just gave each Mac a different speed for each level.
- Improve the graphics and sounds. I know everything looks pretty bad, but give
  me a break. 


I have play tested the best I could. I have also showed the game to several friends
and family and have had positive feedback. So, I am relatively proud of the fact that
it seems to be a fun game. However, I have not had the opportunity to try it on
different platforms nor have I had very much constructive criticism. So, if you have
any feedback you would like to send, please feel free to shoot me an email.

In the meantime, have fun!

For Comments / suggestions / questions
email:
b97bfm@yahoo.com
